/**
 * SPDX-FileCopyrightText: 2023-2025 Sangfor Technologies Inc.
 * SPDX-License-Identifier: Mulan PSL v2
 */
// const MIN_LEN = 6;

/**
 * 用于处理用户密码的校验
 * @param { string } value 需要验证的密码
 * @param { function } defaultValidator 其他验证函数
 * @returns { boolean } 是否通过验证
 */
export default function (value, defaultValidator) {
    if (!value) {
        return true;
    }
    const PWD_REGEX = /^[\x20-\x7E]+$/;
    if (!PWD_REGEX.test(value)) {
        return _('包含非法字符，只能英文半角模式下的字符');
    }

    const SANGFOR_REGEX = /sangfor/;
    if (SANGFOR_REGEX.test(value)) {
        return _('密码不能含敏感字符');
    }
    

    /* eslint-disable */
    let testPassword = /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8,32}$/;
    /* eslint-disable */
    if (!testPassword.test(value)) {
        return _('密码需满足大写字母，小写字母，数字和特殊字符任意三种组合，且长度在8到32位之间');
    }
    return defaultValidator ? defaultValidator(value) : true;
};
